Drag and drop object attribute assignment for objects in a graphical user interface (GUI)

ABSTRACT

Embodiments of the present invention address deficiencies of the art in respect to object attribution modification and provide a novel and non-obvious method, system and computer program product for drag and drop attributes for objects in a graphical user interface. In one embodiment of the invention, a method for drag and drop object attributes in a GUI can be provided. The method can include presenting draggable object attributes in the GUI, dragging one of the draggable object attributes into a separate target object in the GUI, and applying a value for the draggable object attribute to the separate target object. In one aspect of the embodiment, each of the draggable object attributes in the GUI can be separate and independent from any particular object in the GUI. In another aspect of the embodiment, each of the draggable object attributes in the GUI can be draggable from the particular object to a target object in the GUI.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field of object manipulation in agraphical user interface (GUI) and more particularly to attributeconfiguration for objects within a GUI.

2. Description of the Related Art

The modern computing environment incorporates object oriented notions inproviding a navigable user interface and underlying programfunctionality. Object orientation requires the representation of dataelements and programmatic logic alike as objects. Objects can includeattributes that can be externally accessed for reading, writing or both.Objects further can include methods that can be externally invoked orinternally invoked. Objects further can reference other objects suchthat the arrangement of objects can provide a data model, a programmodel, or commonly both a data and program model.

The graphical user interface for an operating system often provides adialog box configured to permit both the viewing of object attributesand also the modification of object attributes. For example, theindividual attributes can be presented textually within the dialog boxand attributes can be modified for the object in the dialog box byselecting radio buttons, check boxes, sliders and drop-down boxes and byproviding text input to text fields of the dialog box. Notably, theattribute settings for an object can be applied to other objects in somecases by selecting a menu choice to do as much. Additionally, an objectcan inherit the attributes of a related object where the object derivesfrom or implements the related objects.

The object attribute dialog box, often referred to as a “properties”dialog box, can be invoked for an associated object in most casesthrough a context menu in association with the object. To applyattributes to an object requires the express invocation of theproperties dialog box. Consequently, the application of attributes to anobject is an indirect manipulation of the object and requires afamiliarity on the part of the end user of the graphical user interfaceproviding the properties dialog box.

Recognizing the human factors limitations of menu driven operations,drag-and-drop functionality has been incorporated into the graphicaluser interface, in particular to facilitate direct manipulation of“cut-copy-paste” operations. Drag-and-drop functionality, however, hasnot found widespread use for providing direct manipulation of otheraspects of graphical user interface interactions.

BRIEF SUMMARY OF THE INVENTION

Embodiments of the present invention address deficiencies of the art inrespect to object attribution modification and provide a novel andnon-obvious method, system and computer program product for drag anddrop attributes for objects in a graphical user interface. In oneembodiment of the invention, a method for drag and drop objectattributes in a GUI can be provided. The method can include presentingdraggable object attributes in the GUI, dragging one of the draggableobject attributes into a separate target object in the GUI, and applyinga value for the draggable object attribute to the separate targetobject. In one aspect of the embodiment, each of the draggable objectattributes in the GUI can be separate and independent from anyparticular object in the GUI. In another aspect of the embodiment, eachof the draggable object attributes in the GUI can be draggable from theparticular object to a target object in the GUI.

In another embodiment of the invention, a GUI data processing system canbe provided. The system can include a GUI with objects and a GUI dialogof object attributes. The system also can include an event loop for theGUI and a drag-and-drop event handler for the event loop. The eventhandler can include program code enabled to respond to a drop event on atarget one of the objects in the GUI by applying a value for a draggedone of the object attributes in the GUI dialog to the target one of theobjects in the GUI. In one aspect of the embodiment, the GUI dialog ofobject attributes can include a dialog box of object attributes for adifferent one of the objects in the GUI. In another aspect of theembodiment, the GUI dialog of object attributes can include a dialog boxof object attributes independently established from the objects in theGUI.

Additional aspects of the invention will be set forth in part in thedescription which follows, and in part will be obvious from thedescription, or may be learned by practice of the invention. The aspectsof the invention will be realized and attained by means of the elementsand combinations particularly pointed out in the appended claims. It isto be understood that both the foregoing general description and thefollowing detailed description are exemplary and explanatory only andare not restrictive of the invention, as claimed.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute partof this specification, illustrate embodiments of the invention andtogether with the description, serve to explain the principles of theinvention. The embodiments illustrated herein are presently preferred,it being understood, however, that the invention is not limited to theprecise arrangements and instrumentalities shown, wherein:

FIG. 1 is a pictorial illustration of a GUI configured for drag-and-dropattributes for object attribute assignment;

FIG. 2 is a schematic illustration of a computing system configured fordrag-and-drop attributes for object attribute assignment in a GUI; and,

FIG. 3 is a flow chart illustrating a process for drag-and-dropattributes for object attribute assignment in a GUI.

DETAILED DESCRIPTION OF THE INVENTION

Embodiments of the present invention provide a method, system andcomputer program product for drag-and-drop attributes for objectattribute assignment in a GUI. In accordance with an embodiment of thepresent invention, a selection of object attributes can be presented ina GUI window and enabled for dragging and dropping onto a target objectoutside of the GUI window. One or more dragged and dropped objectattributes, either alone or as a set of attributes, can be applied asobject attributes for the target object if the target object permits theassignment of an object attribute for each attribute type of a draggedand dropped object attribute. In particular, sets of attributes caninclude persistence, allowing the sets of attributes to be applied as agroup, in a single operation, to a series of objects. In one aspect ofthe embodiment, each set of attributes can be named and stored forsubsequent use. In this way, end users need not invoke a dialog box fora target object in establishing object attributes for the target object.

In illustration, FIG. 1 is a pictorial illustration of a GUI configuredfor drag-and-drop attributes for object attribute assignment. The GUI100 can include one or more objects 120 (only a single object shown forthe purpose of illustrative simplicity). An object 120 can include, byway of example, a logical reference to a document, a logical referenceto an application, a logical reference to a module or functional portionof an application, a logical reference to a user of an application, or alogical reference to application data. The GUI 100 further can include adialog of object attributes 140 displaying a set of object attributes130. The object attributes 130 can include one or more parameters orsettings to be applied to corresponding ones of the objects 120.

The dialog of object attributes 140 can include a dedicated GUI windowpresenting an interface to multiple different object attributes 130through which the different object attributes 130 can be configured withcorresponding attribute values. Alternatively, the dialog of objectattributes 140 can be a GUI window invoked through a context menu anddedicated to a particular object in the GUI and including one or moreobject attributes for the particular object. In either circumstance, theobject attributes 130 can be configured for dragging and dropping ontoobjects 120.

Specifically, a selected one of the object attributes 130 can be draggedby pointing device 150 and dropped onto object 120. The resulting dragand drop event can be trapped by an event handler for object 120 andprocessed through a corresponding event handler for the drag and dropevent. The attribute type for the selected one of the object attributes130 can be compared to the object 120 to determine whether an attributefor the object 120 can be set by a value for the selected one of theobject attributes 130. If so, the event handler for the object 120 canapply the value for the selected one of the object attributes 130 to theobject 120.

The GUI 100 of FIG. 1 can be provided by an operating system in a hostcomputing system. In further illustration, FIG. 2 is a schematicillustration of a computing system configured for drag-and-dropattributes for object attribute assignment in a GUI. As shown in FIG. 2,a host computing platform 210, for example a personal computer, caninclude an operating system 220. The operating system 220 can supportthe operation of one or more applications 230 and can provide a GUIthrough which an end-user can interact with the graphical elements ofboth the operation system 220 and the supported applications 230.Additionally, an event loop 240 can be provided for the operating system220 in order to trap and delegate the processing of GUI events receivedin the operating system 220, including drag-and-drop events.

Notably, drag-and-drop attribute handling logic 250 can be coupled tothe event loop 240. The drag-and-drop attribute handling logic 250 caninclude program code enabled to receive and process drag-and-drop eventsfor dragged and dropped object attributes from an attribute source 260onto target objects in the operating system 220 or in any of theapplications 230. The program code can be enabled to determine whether aspecific one of the object attributes dragged onto a target object hasan object attribute type supported by the target object. The programcode further can be enabled to apply an attribute value for the draggedand dropped object attribute to a corresponding attribute in the targetobject when it is determined that a specific one of the objectattributes dragged onto a target object has an object attribute typesupported by the target object.

Notably, the attribute source 260 can include a dialog of draggableobject attributes established independently of any given object in a GUIdefined by the operating system 220. Different sets of the objectattributes can be arranged such that an entire set of object attributescan be dragged and dropped onto a target object and applied to thetarget object as a unit. Alternatively, the attribute source 260 caninclude a dialog of object attributes for a particular target object,though each of the object attributes in the attribute source 260 can beindependently dragged onto a target object so as to impart acorresponding object attribute value onto the target object.

In yet further illustration, FIG. 3 is a flow chart illustrating aprocess for drag-and-drop attributes for object attribute assignment ina GUI. Beginning in block 310, a drag-and-drop event can be receivedspecifying both a source object and a target object. The source objectand target object can be included as part of an operating system, or aspart of an application supported by the operating system. In decisionblock 320, it can be determined whether the source object is a droppedobject attribute. If so, in block 330 a list of available objectattributes for the target object can be received and compared to thedropped object attribute in block 340.

In decision block 350 it can be determined whether the dropped objectattribute matches an available attribute for the target object. If not,in block 360 the dropped object attribute can be ignored and the processcan return to block 310. However, if it is determined that the droppedobject attribute matches an available attribute for the target object,in block 370 a value for the dropped object attribute can be set for thematching attribute in the target object. In this way, drag and dropobject attributes can be enabled for the target object.

It is to be recognized that it is desirable to apply a transformation toone object, and subsequently to apply the same transformation to anotherobject. Accordingly, in an aspect of the embodiments described herein,one or more attributes can be dragged from an object into a temporarybuffer into which the attributes can be stored. Thereafter, theattributes can then be dragged from the temporary buffer onto otherobjects. Additionally, once attributes are present in the temporarybuffer, the attributes within the buffer can be edited by an end user.

Of further note, in yet another aspect of the embodiment, heuristicmapping of attributes can be established for transforming an attributefrom a source object for application to a target object. For example, asource text object might include the attribute of the color of text,however a target object may not include text, but a shape. Accordinglymapping the color from the source object to the target object, draggingand dropping the text color attribute from the source object to the textobject according to a heuristic mapping will result in the color of thetext in the source object being applied as a shape fill color in thetarget object. Furthermore, to the extent that an ambiguity arises fromthe mapping as to how to transform a particular object, e.g. applyingthe text color as a shape fill color or shape border color, the end usercan be prompted to resolve the ambiguity with the historical choices ofthe end user in resolving ambiguities being applied optionally to avoidprompting the end user for subsequent instances of ambiguity.

Embodiments of the invention can take the form of an entirely hardwareembodiment, an entirely software embodiment or an embodiment containingboth hardware and software elements. In a preferred embodiment, theinvention is implemented in software, which includes but is not limitedto firmware, resident software, microcode, and the like. Furthermore,the invention can take the form of a computer program product accessiblefrom a computer-usable or computer-readable medium providing programcode for use by or in connection with a computer or any instructionexecution system.

For the purposes of this description, a computer-usable or computerreadable storage medium can be any apparatus that can contain or storethe program for use by or in connection with the instruction executionsystem, apparatus, or device. The storage medium can be an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system(or apparatus or device). Examples of a computer-readable storage mediuminclude a semiconductor or solid state memory, magnetic tape, aremovable computer diskette, a random access memory (RAM), a read-onlymemory (ROM), a rigid magnetic disk and an optical disk. Currentexamples of optical disks include compact disk-read only memory(CD-ROM), compact disk-read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode will include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code in order to reduce the number of times code must beretrieved from bulk storage during execution. Input/output or I/Odevices (including but not limited to keyboards, displays, pointingdevices, etc.) can be coupled to the system either directly or throughintervening I/O controllers. Network adapters may also be coupled to thesystem to enable the data processing system to become coupled to otherdata processing systems or remote printers or storage devices throughintervening private or public networks. Modems, cable modem and Ethernetcards are just a few of the currently available types of networkadapters.

We claim:
 1. A method for drag and drop object attributes in a graphicaluser interface (GUI), the method comprising: presenting draggable objectdisplay attributes in the GUI, the display attributes defining a way inwhich a corresponding object to which the attribute is applied isdisplayed in the GUI; dragging one of the draggable object attributesinto a separate target object in the GUI; and, applying a value for thedraggable object attribute to the separate target object; whereinapplying a value for the draggable object attribute to the separatetarget object from within the event handler, comprises: responsive toconcluding that the draggable object attribute cannot be directlyapplied to the target object because the target object is of a type thatdiffers from a type of the corresponding object, determining a heuristicmapping to transform the draggable object attribute to a differentattribute compatible for the type of the target object for applicationto the target object and, applying a transformed form of the draggableobject attribute to the target object so as to change a way in which thetarget object is displayed in the GUI.
 2. The method of claim 1, whereinpresenting draggable object attributes in the GUI, comprises presentingdraggable object attributes in the GUI, each of the draggable objectattributes in the GUI being separate and independent from any particularobject in the GUI.
 3. The method of claim 2, further comprisingassociating different ones of the draggable object attributes with oneanother in a set and rendering the set draggable onto a target object inthe GUI.
 4. The method of claim 3, further comprising storing the set ofattributes for subsequent application to a target object in the GUI. 5.The method of claim 1, wherein presenting draggable object attributes inthe GUI, comprises presenting draggable object attributes for aparticular object in the GUI, each of the draggable object attributes inthe GUI being draggable from the particular object to a target object inthe GUI.
 6. The method of claim 1, wherein dragging one of the draggableobject attributes into a separate target object in the GUI, comprises:dragging and dropping at least one of the draggable object attributesinto a buffer area; and subsequently dragging and dropping the at leastone of the draggable attributes from the buffer area onto the separatetarget object in the GUI.
 7. The method of claim 1, wherein applying avalue for the draggable object attribute to the separate target object,comprises: trapping a drag-and-drop event in an event handler;identifying the draggable object attribute and the target object in theevent; and, applying a value for the draggable object attribute to theseparate target object from within the event handler.
 8. The method ofclaim 7, wherein applying a value for the draggable object attribute tothe separate target object from within the event handler, comprises:matching the draggable object attribute with available object attributesfor the separate target object; and, applying a value for the draggableobject attribute to the separate target object from within the eventhandler in response to a match.
 9. The method of claim 1, whereindetermining a heuristic mapping to transform the draggable objectattribute for application to the target object comprises: encounteringan ambiguity in the heuristic mapping; and prompting an end user tochoose among different potentially applicable transformations of thedraggable object attribute.
 10. The method of claim 9, furthercomprising: recording an end user choice for resolving the ambiguity inthe heuristic mapping; and, subsequently applying the recorded end userchoice when encountering a subsequent incidence of the ambiguity.
 11. Agraphical user interface (GUI) data processing system comprising: acomputer with at least one processor and memory; a GUI defined in thememory of the computer comprising a plurality of objects; a GUI dialogof object display attributes, the attributes defining a way in which acorresponding object to which the attribute is applied is displayed inthe GUI; an event loop for the GUI; and, a drag-and-drop event handlerfor the event loop executing in the computer, the event handlercomprising program code enabled to respond to a drop event on a targetone of the objects in the GUI by applying a value for a dragged one ofthe object attributes in the GUI dialog to the target one of the objectsin the GUI; wherein applying a value for the dragged one of the objectattributes in the GUI dialog to the target one of the objects in the GUIcomprises, in response to concluding that the dragged one of the objectattributes cannot be directly applied to the target one of the objectsbecause the target one of the objects is of a type that differs from atype of the corresponding object determining a heuristic mapping totransform the dragged one of the object attributes to a differentattribute compatible for the type of the target one of the objects forapplication to the target one of the objects and, applying a transformedform of the dragged one of the object attributes to the target one ofthe objects so as to change a way in which the target one of the objectsis displayed in the GUI.
 12. The system of claim 11, wherein the GUIdialog of object attributes comprises a dialog box of object attributesfor a different one of the objects in the GUI.
 13. The system of claim11, wherein the GUI dialog of object attributes comprises a dialog boxof object attributes independently established from the objects in theGUI.
 14. The system of claim 13, wherein the GUI dialog of objectattributes further comprises a set of the object attributes arranged tobe dragged and dropped onto a target one of the objects in the GUI as aunit.
 15. The system of claim 11, wherein the GUI is part of anapplication supported by an operating system.
 16. The system of claim11, wherein the GUI is part of an operating system.
 17. A computerprogram product comprising a non-transitory computer usable mediumembodying computer usable program code for drag and drop objectattributes in a graphical user interface (GUI), the computer programproduct comprising: computer usable program code for presentingdraggable object display attributes in the GUI, the display attributesdefining a way in which a corresponding object to which the attribute isapplied is displayed in the GUI; computer usable program code fordragging one of the draggable object attributes into a separate targetobject in the GUI; and, computer usable program code for applying avalue for the draggable object attribute to the separate target object,wherein applying a value for the draggable object attribute to theseparate target object from within the event handler, comprises,responsive to concluding that the draggable object attribute cannot bedirectly applied to the target object because the target object is of atype that differs from a type of the corresponding object, determining aheuristic mapping to transform the draggable object attribute to adifferent attribute compatible for the type of the target object forapplication to the target object and, applying a transformed form of thedraggable object attribute to the target object so as to change a way inwhich the target object is displayed in the GUI.
 18. The computerprogram product of claim 17, wherein the computer usable program codefor presenting draggable object attributes in the GUI, comprisescomputer usable program code for presenting draggable object attributesin the GUI, each of the draggable object attributes in the GUI beingseparate and independent from any particular object in the GUI.
 19. Thecomputer program product of claim 18, further comprising computer usableprogram code for associating different ones of the draggable objectattributes with one another in a set and rendering the set draggableonto a target object in the GUI.
 20. The computer program product ofclaim 17, wherein the computer usable program code for presentingdraggable object attributes in the GUI, comprises computer usableprogram code for presenting draggable object attributes for a particularobject in the GUI, each of the draggable object attributes in the GUIbeing draggable from the particular object to a target object in theGUI.
 21. The computer program product of claim 17, wherein dragging oneof the draggable object attributes into a separate target object in theGUI, comprises: dragging and dropping at least one of the draggableobject attributes into a buffer area; and subsequently dragging anddropping the at least one of the draggable attributes from the bufferarea onto the separate target object in the GUI.
 22. The computerprogram product of claim 17, wherein the computer usable program codefor applying a value for the draggable object attribute to the separatetarget object, comprises: computer usable program code for trapping adrag-and-drop event in an event handler; computer usable program codefor identifying the draggable object attribute and the target object inthe event; and, computer usable program code for applying a value forthe draggable object attribute to the separate target object from withinthe event handler.
 23. The computer program product of claim 22, whereinthe computer usable program code for applying a value for the draggableobject attribute to the separate target object from within the eventhandler, comprises: computer usable program code for matching thedraggable object attribute with available object attributes for theseparate target object; and, computer usable program code for applying avalue for the draggable object attribute to the separate target objectfrom within the event handler in response to a match.
 24. The computerprogram product of claim 17, wherein the computer usable program codefor determining a heuristic mapping to transform the draggable objectattribute for application to the target object comprises: computerusable program code for encountering an ambiguity in the heuristicmapping; and computer usable program code for prompting an end user tochoose among different potentially applicable transformations of thedraggable object attribute.
 25. The computer program product of claim24, further comprising: computer usable program code for recording anend user choice for resolving the ambiguity in the heuristic mapping;and, computer usable program code for subsequently applying the recordedend user choice when encountering a subsequent incidence of theambiguity.
 26. The computer program product of claim 17, furthercomprising computer usable program code for associating different onesof the draggable object attributes with one another in a set andrendering the set draggable onto a target object in the GUI.
 27. Thecomputer program product of claim 26, further comprising computer usableprogram code for storing the set of attributes for subsequentapplication to a target object in the GUI.